The bitset(unsigned long long) constructor was broken by the constexpr additions only on 32 bit platforms. Fixed. This addresses http://llvm.org/bugs/show_bug.cgi?id=15444. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@176559 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/bitset b/include/bitset index 1167f50..06fd729 100644 --- a/include/bitset +++ b/include/bitset 
@@ -249,7 +249,13 @@  _LIBCPP_CONSTEXPR  __bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT  #ifndef _LIBCPP_HAS_NO_CONSTEXPR +#if __SIZE_WIDTH__ == 64  : __first_{__v} +#elif __SIZE_WIDTH__ == 32 + : __first_{__v, __v >> __bits_per_word} +#elif +#error This constructor has not been ported to this platform +#endif  #endif  {  #ifdef _LIBCPP_HAS_NO_CONSTEXPR @@ -633,6 +639,7 @@  class _LIBCPP_VISIBLE bitset  : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1, _Size>  { +public:  static const unsigned __n_words = _Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1;  typedef __bitset<__n_words, _Size> base;